<!DOCTYPE html>
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  <meta name="description" content="刘清政">
  <meta name="keyword" content="hexo-theme">
  
    <link rel="shortcut icon" href="/css/images/logo.png">
  
  <title>
    
      Justin-刘清政的博客
    
  </title>
  <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/tomorrow.min.css" rel="stylesheet">
  
<link rel="stylesheet" href="/css/style.css">

  
    
<link rel="stylesheet" href="/css/plugins/gitment.css">

  
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/geopattern/1.2.3/js/geopattern.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js"></script>
  
    
<script src="/js/qrious.js"></script>

  
  
    
<script src="/js/gitment.js"></script>

  
  

  
<meta name="generator" content="Hexo 4.2.0"></head>
<div class="wechat-share">
  <img src="/css/images/logo.png" />
</div>

  <body>
    <header class="header fixed-header">
  <div class="header-container">
    <a class="home-link" href="/">
      <div class="logo"></div>
      <span>Justin-刘清政的博客</span>
    </a>
    <ul class="right-list">
      
        <li class="list-item">
          
            <a href="/" class="item-link active">主页</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/tags/" class="item-link">标签</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/archives/" class="item-link">归档</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/about/" class="item-link">关于我</a>
          
        </li>
      
    </ul>
    <div class="menu">
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </div>
    <div class="menu-mask">
      <ul class="menu-list">
        
          <li class="menu-item">
            
              <a href="/" class="menu-link mobile-active">主页</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/tags/" class="menu-link">标签</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/archives/" class="menu-link">归档</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/about/" class="menu-link">关于我</a>
            
          </li>
        
      </ul>
    </div>
  </div>
</header>

    <main class="app-body">
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/1-drf-drf%E5%85%A5%E9%97%A8%E8%A7%84%E8%8C%83/">python/Django-rest-framework框架/1-drf-drf入门规范</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          一  Web应用模式在开发Web应用中，有两种应用模式：
1.1 前后端不分离
1.2 前后端分离
二 API接口为了在团队内部形成共识、防止个人习惯差异引起的混乱，我们需要找到一种大家都觉得很好的接口实现规范，而且这种规范能够让后端写的接口，用途一目了然，减少双方之间的合作成本。
通过网络 ...
        
      </div>
      <a class="more" href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/1-drf-drf%E5%85%A5%E9%97%A8%E8%A7%84%E8%8C%83/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/4-drf-%E8%A7%86%E5%9B%BE%E7%BB%84%E4%BB%B6/">python/Django-rest-framework框架/4-drf-视图组件</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          一 视图Django REST framwork 提供的视图的主要作用：

控制序列化器的执行（检验、保存、转换数据）
控制数据库查询的执行

1.1 视图继承关系
视图的方法与属性：

1.2 视图REST framework 提供了众多的通用视图基类与扩展类，以简化视图的编写。
1.2. ...
        
      </div>
      <a class="more" href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/4-drf-%E8%A7%86%E5%9B%BE%E7%BB%84%E4%BB%B6/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/3-drf-%E8%AF%B7%E6%B1%82%E4%B8%8E%E5%93%8D%E5%BA%94/">python/Django-rest-framework框架/3-drf-请求与响应</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          一 请求与响应1.1 RequestREST framework 传入视图的request对象不再是Django默认的HttpRequest对象，而是REST framework提供的扩展了HttpRequest类的Request类的对象。
REST framework 提供了Parser解 ...
        
      </div>
      <a class="more" href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/3-drf-%E8%AF%B7%E6%B1%82%E4%B8%8E%E5%93%8D%E5%BA%94/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/5-drf-%E8%B7%AF%E7%94%B1%E7%BB%84%E4%BB%B6/">python/Django-rest-framework框架/5-drf-路由组件</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          一 路由Routers对于视图集ViewSet，我们除了可以自己手动指明请求方式与动作action之间的对应关系外，还可以使用Routers来帮助我们快速实现路由信息。
REST framework提供了两个router

SimpleRouter
DefaultRouter

1.1 使用 ...
        
      </div>
      <a class="more" href="/python/Django-rest-framework%E6%A1%86%E6%9E%B6/5-drf-%E8%B7%AF%E7%94%B1%E7%BB%84%E4%BB%B6/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/linux/%E5%85%B6%E4%BB%96/03-DevOps%E5%AE%9E%E6%88%98/">linux/其他/03-DevOps实战</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          一 Docker搭建gitlab1234567891011# 拉取镜像docker pull gitlab/gitlab-ce# 启动容器docker run -d --hostname www.liuqingzheng.top -p 443:443 -p 8080:80 -p 222:22 ...
        
      </div>
      <a class="more" href="/linux/%E5%85%B6%E4%BB%96/03-DevOps%E5%AE%9E%E6%88%98/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/linux/Docker/11-docker%E7%BD%91%E7%BB%9C%E6%89%A9%E5%B1%95/">linux/Docker/11-docker网络扩展</a>
      </h2>
      <p class="article-date">2020年6月28日</p>
      
      <div class="article-summary">
        
          docker run参数1234567891011121314151617181920212223242526272829303132333435363738394041常用选项说明    -d, --detach=false， 指定容器运行于前台还是后台，默认为false    -i, - ...
        
      </div>
      <a class="more" href="/linux/Docker/11-docker%E7%BD%91%E7%BB%9C%E6%89%A9%E5%B1%95/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E5%85%B6%E4%BB%96/03-paramiko%E6%A8%A1%E5%9D%97%E7%9A%84%E4%BD%BF%E7%94%A8/">python/其他/03-paramiko模块的使用</a>
      </h2>
      <p class="article-date">2020年5月27日</p>
      
      <div class="article-summary">
        
          paramiko一 介绍12# 用于帮助开发者通过代码远程连接服务器，并对服务器进行操作。# pip3 install paramiko



二 通过用户名密码方式远程执行命令12345678910111213141516171819import paramiko# 创建SSH对象ssh  ...
        
      </div>
      <a class="more" href="/python/%E5%85%B6%E4%BB%96/03-paramiko%E6%A8%A1%E5%9D%97%E7%9A%84%E4%BD%BF%E7%94%A8/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E5%85%B6%E4%BB%96/05-Supervisor%E7%9A%84%E4%BD%BF%E7%94%A8/">python/其他/05-Supervisor的使用</a>
      </h2>
      <p class="article-date">2020年5月17日</p>
      
      <div class="article-summary">
        
          Supervisor 的使用一  Supervisor介绍Supervisor  (http://supervisord.org) 是一个用 [Python] 写的进程管理工具，可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制，还可以同时启动、关闭多 ...
        
      </div>
      <a class="more" href="/python/%E5%85%B6%E4%BB%96/05-Supervisor%E7%9A%84%E4%BD%BF%E7%94%A8/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E5%88%86%E5%B8%83%E5%BC%8F%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1/5-%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E7%9A%84%E5%8C%BA%E5%88%AB/">python/分布式与微服务/5-分布式架构与微服务架构的区别</a>
      </h2>
      <p class="article-date">2020年5月11日</p>
      
      <div class="article-summary">
        
          一 分布式架构分布式服务顾名思义服务是分散部署在不同的机器上的，一个服务可能负责几个功能，是一种面向SOA架构的，服务之间也是通过rpc来交互或者是webservice来交互的。逻辑架构设计完后就该做物理架构设计，系统应用部署在超过一台服务器或虚拟机上，且各分开部署的部分彼此通过各种通讯协议 ...
        
      </div>
      <a class="more" href="/python/%E5%88%86%E5%B8%83%E5%BC%8F%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1/5-%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E7%9A%84%E5%8C%BA%E5%88%AB/">详情...</a>
    </article>
  
    <article class="article-card">
      <h2 class="article-head">
        <a href="/python/%E5%88%86%E5%B8%83%E5%BC%8F%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1/6-SOA%E6%9E%B6%E6%9E%84%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E7%9A%84%E5%8C%BA%E5%88%AB/">python/分布式与微服务/6-SOA架构与微服务架构的区别</a>
      </h2>
      <p class="article-date">2020年5月11日</p>
      
      <div class="article-summary">
        
          一 SOA注重重用，微服务注重重写SOA 的主要目的是为了企业各个系统更加容易地融合在一起。
微服务通常由重写一个模块开始。要把整个巨石型的应用重写是有很大的风险的，也不一定必要。我们向微服务迁移的时候通常从耦合度最低的模块或对扩展性要求最高的模块开始。
把它们一个一个剥离出来用敏捷地重写， ...
        
      </div>
      <a class="more" href="/python/%E5%88%86%E5%B8%83%E5%BC%8F%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1/6-SOA%E6%9E%B6%E6%9E%84%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E7%9A%84%E5%8C%BA%E5%88%AB/">详情...</a>
    </article>
  

  
    <div class="guide-pager">
  
    <a href="/page/19/"><span class="page-arrow">← </span>Prev</a>
  
  
    <a href="/page/21/">Next<span class="page-arrow"> →</span></a>
  
</div>
  
</main>


    <div class="scroll-top">
  <span class="arrow-icon"></span>
</div>
    <footer class="app-footer">
<!-- 不蒜子统计 -->
<span id="busuanzi_container_site_pv">
     本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span>
<span class="post-meta-divider">|</span>
<span id="busuanzi_container_site_uv" style='display:none'>
     本站访客数<span id="busuanzi_value_site_uv"></span>人
</span>
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>



  <p class="copyright">
    &copy; 2021 | Proudly powered by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank">小猿取经</a>
    <br>
    Theme by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank" rel="noopener">小猿取经</a>
  </p>
</footer>

<script>
  function async(u, c) {
    var d = document, t = 'script',
      o = d.createElement(t),
      s = d.getElementsByTagName(t)[0];
    o.src = u;
    if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
    s.parentNode.insertBefore(o, s);
  }
</script>
<script>
  async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function(){
    FastClick.attach(document.body);
  })
</script>

<script>
  var hasLine = 'true';
  async("//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js", function(){
    $('figure pre').each(function(i, block) {
      var figure = $(this).parents('figure');
      if (hasLine === 'false') {
        figure.find('.gutter').hide();
      }
      var lang = figure.attr('class').split(' ')[1] || 'code';
      var codeHtml = $(this).html();
      var codeTag = document.createElement('code');
      codeTag.className = lang;
      codeTag.innerHTML = codeHtml;
      $(this).attr('class', '').empty().html(codeTag);
      figure.attr('data-lang', lang.toUpperCase());
      hljs.highlightBlock(block);
    });
  })
</script>





<!-- Baidu Tongji -->

<script>
    var _baId = 'c5fd96eee1193585be191f318c3fa725';
    // Originial
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "//hm.baidu.com/hm.js?" + _baId;
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
</script>


<script src="/js/script.js"></script>


<script src="/js/search.js"></script>


<script src="/js/load.js"></script>



  <span class="local-search local-search-google local-search-plugin" style="right: 50px;top: 70px;;position:absolute;z-index:2;">
      <input type="search" placeholder="站内搜索" id="local-search-input" class="local-search-input-cls" style="">
      <div id="local-search-result" class="local-search-result-cls"></div>
  </span>


  </body>
</html>